package user

// 此文件是用来定义保存到数据库中的数据

import (
	"encoding/json"

	"gitee.com/liuxiaowei123/vblog-3/common"
	"golang.org/x/crypto/bcrypt"
)

type User struct {
	*common.Meta
	*CreateUserRequest
}

func NewUser(req *CreateUserRequest) *User {
	return &User{
		Meta:              common.NewMeta(),
		CreateUserRequest: req,
	}
}

// 把结构体User转换成Json格式的字符串
func (u *User) String() string {
	b, _ := json.Marshal(u)
	return string(b)
}

// 扩展User方法，判断输入的用户密码是否正确
func (u *User) CheckPassword(password string) error {
	err := bcrypt.CompareHashAndPassword([]byte(u.Password), []byte(password))
	if err != nil {
		panic(err)
	}
	return nil
}
